///**
// * Copyright (c) 2016-2019 人人开源 All rights reserved.
// * <p>
// * https://www.renren.io
// * <p>
// * 版权所有，侵权必究！
// */
//
//package io.renren.common.utils;
//
//import io.renren.common.exception.RRException;
//import io.renren.modules.sys.entity.SysUserEntity;
//import org.apache.shiro.SecurityUtils;
//import org.apache.shiro.session.Session;
//import org.apache.shiro.subject.Subject;
//
///**
// * Shiro工具类
// *
// * @author Mark sunlightcs@gmail.com
// */
//public class ShiroUtils {
//
//    public static Session getSession() {
//
//        return SecurityUtils.getSubject().getSession();
//    }
//
//    public static Subject getSubject() {
//
//        return SecurityUtils.getSubject();
//    }
//
//    public static SysUserEntity getUserEntity() {
//
//        return (SysUserEntity) SecurityUtils.getSubject().getPrincipal();
//    }
//
//    public static Long getUserId() {
//
//        return getUserEntity().getUserId();
//    }
//
//    public static void setSessionAttribute(Object key, Object value) {
//
//        getSession().setAttribute(key, value);
//    }
//
//    public static Object getSessionAttribute(Object key) {
//
//        return getSession().getAttribute(key);
//    }
//
//    public static boolean isLogin() {
//
//        return SecurityUtils.getSubject().getPrincipal() != null;
//    }
//
//    public static String getKaptcha(String key) {
//
//        Object kaptcha = getSessionAttribute(key);
//        if (kaptcha == null) {
//            throw new RRException("验证码已失效");
//        }
//        getSession().removeAttribute(key);
//        return kaptcha.toString();
//    }
//
//}
